A common requirement of computer systems is the processing of date-oriented information in chronological order. Because of the high cost of memory in computing systems and also because of the convenience, date-oriented information has commonly been stored in a format in which the year portion of the date associated with the information is represented by two digits. Thus, the year 1996 is commonly represented in computer applications as "96." Sorting and sequencing such information has not presented any problem up to now because such two-digit year designators (along with other designators representing days, weeks, and/or months) could easily be placed in their proper order. Current computer and software systems can easily compare, for example, 94 and 96, as representing 1994 and 1996 dates, and can accordingly arrange information associated with the dates and/or the dates themselves in proper chronological order.
However, present computer systems which process two-digit year data will not be able to adequately process date-oriented information associated with dates in the year 2000 and beyond. Dates during the year 2000 have a two-digit year designation of 00; without any additional information, a computer will organize date data having a year designation 00 as though the year was 1900. The result is that application programs relying on dates in their correct chronological order will be unable to operate properly with two-digit year date designations representing dates from both the 20.sup.th and 21.sup.st centuries.
Operations with date values are commonly performed by means of "windowing." Windowing is a technique in which only a portion of the total data is visible at any one time. Windows may be either fixed or sliding, with a fixed window having a definite starting and ending year, while a sliding or dynamic window provides for a user-defined starting and ending point. The common method of operating with two-digit year designations uses a fixed window of 100 years beginning with the digits 00 (representing 1900) and ending with 99 (representing 1999), the century designator (i.e. "19") being implied.
Various solutions have been suggested to address the impending problems associated with two-digit year designations spanning multiple centuries. One principal solution involves data expansion, which is the conversion of all two-digit year designations to four-digit year designations. In this way, sequencing and sorting of date data can occur as it always has. However, this solution has numerous disadvantages, foremost among which is the expense of conversion in terms of additional memory requirements and associated costs. Another problem is that data expansion is not easily retrofitted to existing systems due to incompatibility with existing data and software. Yet another problem with this solution includes significant amounts of system downtime during the conversion.
Another proposed solution is to make changes in the data accessing procedures. Use of two-digit year designators is retained, along with the concomitant out-of-sequence condition of the associated information. Instead, the logic of application programs which operate on the data is modified to retrieve data records using multiple passes. A first pass may, for example retrieve date-oriented information associated with 20.sup.th century dates, and a second pass may retrieve 21.sup.st century information. The principal disadvantages inherent in this proposed solution is that it changes the processing logic in application programs and that it is quite awkward to implement.
Yet another proposed solution is to modify application programs so that the programs change the year designation of a datum read from a master file or data storage. One example is U.S. Pat. No. 5.600,836 to Alter, which describes a system and method by which a virtual boundary is erected between a database or other data storage or input means containing date-oriented information and the application program using such information. The boundary is a date conversion which applies to any information crossing the boundary, i.e. being called from storage to an application program, or being output or stored from the result of the application program. Raw data are altered at the boundary by adding or subtracting a given value from the raw data and then performing operations on the altered data. This proposed solution has the drawback that it can only be used with a limited window of years.
IBM Corporation has developed versions of its Information Management System (IMS) database and processing software which is able to process some dates in 2000 and beyond. The IBM solution, like that of the Alter patent, is to add a sum to two-digit year designators representing dates in the years 2000-2059 inclusive. This is accomplished by adding 10 in hexadecimal format to the tens digit of a two-digit year designator having a tens digit of 0-5 inclusive. For example, the year 2010 would be represented by the two-digit year designator 10. The IBM method would add a hexadecimal equivalent of 10 to the tens digit, making the two-digit year designator B0 (where B is the hexadecimal digit equivalent to the value 11 in base-10 format). One disadvantage to the IBM solution is that it only works for a certain window of dates, in the above example dates between 1960 and 2059 inclusive.
Accordingly, there still exists a need for a method for easily and cost-effectively retaining the use of two-digit years for date-oriented information associated with dates in more than one century while maintaining the information in correct chronological sequence.